import { httpApi } from "@/api/util.js"
import Mock from 'mockjs';

const baseUrl = process.env.BASE_URL // 组件上下文标识
const forceType = require('./forceType.js') // 代理变量
const isForce = forceType.isForce // 页面代理类型 强制执行 为''时按本地执行

// 生成接口列表
function getAxios(pageName, urlName, params) {
    let localForce = forceType[pageName]
    let force = isForce || localForce
    // mock
    async function setMock() {
        const mockReq = require(`./serve/${pageName}/mockReq.js`)
        // console.log(mockReq, 'mockReq ', urlName)
        let data = await Mock.mock(mockReq[urlName])
        return data
    }
    // 代理
    async function setProxy(params) {
        // url列表 存储格式是对象
        const urlList = require(`./serve/${pageName}/urlList.js`)
        let item = urlList[urlName]

        if (process.env.NODE_ENV === "development") {

            let res = await httpApi[item.type](`${item.url}`, params)
            return res
        } else {
            let res = await httpApi[item.type](`${item.url}`, params)
            return res
        }

    }

    if (process.env.NODE_ENV === "development") {
        // 本页面设置为mock && 没有设置强制代理  或强制代理为mock

        if ((localForce == 'mock' && !isForce) || isForce == 'mock') {
            // mock数据
            // console.log(pageName, 'pageName')
            // console.log(urlName, 'urlName')

            return setMock(pageName, urlName)
        }
        // 使用代理
        return setProxy(params)
    } else {
        // 打包发布 使用代理
        return setProxy(params)
    }
}
export default getAxios
